Chapter 12 | Software Development

12.1 Program Development Cycle

The Software Development Life Cycle →

The software development life cycle (SDLC) is a process of developing a program, set out in 5 defined stages:

Analysis

Design

Coding

Testing

>

Maintenance

>

Software Development →

>

Waterfall Model →

Linear, sequential model of development. Each stage is completed and signed off before the next stage begins. fully documented at each stage. Downward arrows indicate that the current stage has been completed and data will be passed to the next stage. Upwards arrows indicate that more work is needed on a different stage before this stage can be completed.

Benefits:

Drawbacks:

Iterative model →

Development starts with a small subset of program requirements, and repeated reviews are used to identify further requirements until a complete program is eventually made.

Benefits:

Drawbacks:

Rapid application development (RAD) model →

Developing different parts of the program in parallel by teams of programmers. Uses prototyping and high customer involvement

Benefits:

Drawbacks:

12.2 Program Design

Finite State Machines

A finite state machine (FSM) is a machine that consists of a fixed set of possible states, inputs to change the states, and a set of outputs.
State-transition table gives information about inputs and events.
States are represented as circles.
Transitions are represented as arrows.
Events are represented as arrow labels.
Stopped state is indicated by a double circle.

Important Definitions

Structure Charts

A structure chart is a graphical representation and modeling tool used to decompose a problem into smaller sub-tasks. It shows module relationships.

12.3 Program Testing and Maintenance

Errors & Testing →

Errors →

Syntax error -an error in which a program statement does not follow the rules or grammar of a programming language

Logic error - error in the logic of a solution that causes it not to behave as intended

Run-time error - an error that causes program execution to freeze or crash due to invalid operations and extreme conditions

Ways to minimise errors:

Testing strategies →

Test Data →

Maintenance →

Corrective maintenance →

Adaptive maintenance →

Perfective maintenance →